package classics.simulate;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
 * ex451 根据字符频次统计
 */
public class Ex451 {
    public String frequencySort(String s) {
        Map<Character,Integer> map = new HashMap<>();

        for (int i = 0; i < s.length(); i++) {
            char temp = s.charAt(i);
            map.put(temp,map.getOrDefault(temp,0)+1);
        }
        List<Character> list = new ArrayList<>(map.keySet());
        list.sort((a, b) -> map.get(b) - map.get(a));
        StringBuilder res = new StringBuilder();
        int size = list.size();
        for (int i = 0; i < size; i++) {
            char t = list.get(i);
            int fl = map.get(t);
            for (int j = 0; j < fl; j++) {
                res.append(t);
            }
        }
        return res.toString();
    }
}
